UserScript Manager
from UserScriptを他人のprojectから読み込むな
更新があったときに、どのモジュールにどういうdiffがあったのかとか理解したいし、そのためにも、バンドルしない形式でimportしても利便性を損なわないようにいろいろ揃えたい
・たとえば、プロジェクトに移動したら毎回Managerを初期化し、importメソッドをコールする
・Managerはbundle前ソースの更新履歴やハッシュを確認
・更新があるとき
・localStorageにminify & bundleしてキャッシュ
・利用者にdiffを提示
・更新がないとき
・localStorageのminified scriptを読み込む
yuki_minoh.icon
つくるべきかやめとくか迷っている
UserScript開発のベストプラクティスを知る前には作る気満々だったけど、ベストプラクティスを実践したら割と軽いコストでどうにかなるかも、と感じ始めた
判断するためにメリットをまとめておく
やりたいこと
もっとセキュアで便利なUserScript環境
XSSとかにおびえることなく、手軽にUserScriptを使いたいし、使ってもらいたい
UserScriptは危険でも高度な知識を必要とするものでもない、というレベルに到達したい/近づきたい
/masui/ソニー講演 2018/1/16のメンタルにも近い
というかスケーラブルでセキュアなUserScript実行環境がほしい
そのために問題になってるのがXSSだからそこのところどうにかしようという話
コピペとか運用でどうにかしよう話はいまいちスケーラビリティを損なう気がしてならない
機能
バージョン指定
Page HistoryやScrapboxのcommitを駆使して、バージョンの指定を可能にする
diffを明確化する機能
パッケージを読み込むべきかどうかを判断する材料を提示する
ハッシュの比較など
依存関係の整理
脆弱性を報告するやり方を考えれば、依存関係をたどって警告の表示ができるようになる
ソースコードに誰が(どのくらいの人が)関与しているのかを明確にすることで、信頼するかどうかを決める助けになる
遅延bundle&キャッシング
バンドルして公開する手間がいらなくなる
読み込みの高速化
takker.iconさんの作っている機能を利用したいとyuki_minoh.iconは考えているが。。。?
Chrome拡張機能等で実装するイメージですか?blu3mo.icon
わりと普通にyuki_minoh.icon
code:script.js
import {manager} from "..."
manager.install("/api/code/...");
を考えていた
なるほど!、理解しましたblu3mo.icon
このUserScript自体の安全性は保証できるんだろうか…yosider.icon
逆に言うとこのUserScriptだけ品質保証できればいい状況にしたいyuki_minoh.icon